package org.zjx.task;

import lombok.Data;
import org.zjx.task.core.ChainResult;
import org.zjx.task.core.ITaskChain;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 任务链执行上下文
 */

/**
 * 任务链执行上下文，保存执行状态、参数和结果。
 */
@Data
public class ChainContext {
    // 当前执行的任务链
    private ITaskChain currentChain;
    // 全局参数（线程安全）
    private Map<String, Object> params = new ConcurrentHashMap<>();
    // 中断标记
    private volatile boolean chainInterrupted = false;
    // 执行结果
    private ChainResult chainResult = new ChainResult();
    //当前执行的任务序号
    private int currentChainIndex = 0;
}